#ifndef __ASSET_LOADER_H__
#define __ASSET_LOADER_H__

#include <string>
#include <map>
#include "IModelLoader.h"

namespace steam
{
	namespace coal
	{
		class AssetLoader
		{
		public:

			typedef std::string ModelType;
		
			// ctor
			AssetLoader(std::string dirPath);

			// register model loader
			void addModelLoader(ModelType type, IModelLoader* loader);

			// unregister model loader
			void removeModelLoader(ModelType type);

			// load model
			IMesh* loadModelFromFile(std::string filename, ModelType type);

		private:

			typedef std::map<ModelType, IModelLoader*> ModelLoaderMap;

			ModelLoaderMap m_modelLoaderMap;

			std::string m_dirPath;
		};
	}
}

#endif